package main

import (
	"fmt"
	"goProject/gorm/db"
	_ "gorm.io/gorm"
)

func runMysqlExample() {
	dbConn := db.InitMySQL()

	// 插入数据
	dbConn.Create(&db.User{Name: "Alice", Email: "alice@example.com"})
	dbConn.Create(&db.User{Name: "Bob", Email: "bob@example.com"})

	// 查询数据
	var users []db.User
	dbConn.Find(&users)
	fmt.Println("所有用户：", users)

	// 更新数据
	if len(users) > 0 {
		dbConn.Model(&users[0]).Update("Email", "alice@newdomain.com")
	}

	// 删除数据
	if len(users) > 1 {
		dbConn.Delete(&users[1])
	}

	// 查询剩余
	var remaining []db.User
	dbConn.Find(&remaining)
	fmt.Println("剩余用户：", remaining)

	// 🔥 关键：关闭连接，强制 flush，否则不会写入到硬盘
	sqlDB, err := dbConn.DB()
	if err != nil {
		panic("获取底层数据库连接失败：" + err.Error())
	}
	err = sqlDB.Close()
	if err != nil {
		panic(err)
	}
}

func main() {
	runMysqlExample()
}
